using System;
using System.Collections;
using Curriculum.DataAccess.Server;
using Curriculum.Db4oHttpModule;
using Curriculum.Manejadores;
using Curriculum.Metadatos.ClasesMetadatos;
using Utiles;

namespace Actualizacion
{
	/// <summary>
	/// Summary description for ActualizadorItemListasXML.
	/// </summary>
	public class ActualizadorItemListasXML : Actualizador
	{
		public ActualizadorItemListasXML()
		{}

		public void Ejecutar()
		{
			ListaItemsTipoValorDbToXML();
		}

		public string GetMensajeOk()
		{
			return "Item de Listas XML Actualizados Correctamente";
		}

		private void ListaItemsTipoValorDbToXML()
		{	
			IList lista = new ObjectServer(Db4oHttpModule.Client).GetAllObjects(typeof(ItemListaValores));
			((ArrayList)lista).Sort(new GenericComparer("Id", true));
			ManejadorListasValores manejador = new ManejadorListasValores();

			Valores valoresXML = new Valores();
			ArrayList listaValores = new ArrayList();
			foreach (ItemListaValores valor in lista)
			{
				ItemValor itemValorXML = new ItemValor();
				itemValorXML.id = valor.Id;
				itemValorXML.idAntecedente = valor.AntecedenteMetadato.Id;
				itemValorXML.idAtributo = valor.AtributoMetadato.Id;
				itemValorXML.valor = valor.Valor;

				listaValores.Add(itemValorXML);
			}
			
			valoresXML.ItemValor = new ItemValor[listaValores.Count];
			listaValores.CopyTo(valoresXML.ItemValor);
			manejador.GuardarListaValoresEnXML(valoresXML);			
		}

	}
}
